/*
 * BandasDTO.java
 *
 * Created on 2 de febrero de 2007, 03:20 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package ig.metrica.riesgo;

import ig.util.KeyGenerator;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;

/**
 *
 * @author jsanchez
 */
public class BandasDTO implements Serializable{
    
    private boolean nuevo=false;
    private Integer idZona;
    private Double ajusteVertical=0.0;
    private Integer id;
    private Integer numero;
    private Double limiteInferior=0.0;
    private Double limiteSuperior=0.0;
    private String nombre=null;
    private Collection<FactorRiesgoMatrizCorrelacionMetrica> collection=new ArrayList<FactorRiesgoMatrizCorrelacionMetrica>();
//    private FactorRiesgoMatrizCorrelacionMetrica  factorRiesgoMatrizCorrelacionMetrica;
    /** Creates a new instance of BandasDTO */
    public BandasDTO(Integer idZona,Double ajusteVertical,Integer id,Integer numero,String nombre) {
        this.setIdZona(idZona);
        this.setAjusteVertical(ajusteVertical);
        this.setId(id);
        this.setNumero(numero);
        this.nombre=nombre;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    
    public Integer getIdZona() {
        return idZona;
    }
    
    public void setIdZona(Integer idZona) {
        this.idZona = idZona;
    }
    
    public Double getAjusteVertical() {
        return ajusteVertical;
    }
    
    public void setAjusteVertical(Double ajusteVertical) {
        this.ajusteVertical = ajusteVertical;
    }
    
    public Integer getId() {
        return id;
    }
    
    public void setId(Integer id) {
        this.id = id;
    }
    
    public Integer getNumero() {
        return numero;
    }
    
    public void setNumero(Integer numero) {
        this.numero = numero;
    }
    
    public boolean isNuevo() {
        return nuevo;
    }
    
    public void setNuevo(boolean nuevo) {
        this.nuevo = nuevo;
    }
    
    public Collection<FactorRiesgoMatrizCorrelacionMetrica> getCollection() {
        return collection;
    }
    public synchronized void setFactores(Collection<FactorRiesgoMatrizCorrelacionMetrica> _collection) {
        this.collection=_collection;
    }
    public synchronized void setCollection(Collection<FactorRiesgoMatrizCorrelacionMetrica> _collection) {
        if(_collection.size()>0){
            for (FactorRiesgoMatrizCorrelacionMetrica _elem : _collection) {
                boolean existe=false;
                FactorRiesgoMatrizCorrelacionMetrica fNuevo=new FactorRiesgoMatrizCorrelacionMetrica(_elem.getNombre(),_elem.getCambioEsperado(),_elem.getPosicion(),_elem.getId());
                fNuevo.setNuevo(true);
                for (FactorRiesgoMatrizCorrelacionMetrica elem : collection) {
                    fNuevo.getCambioEsperadoPBS().setLimiteInferior(elem.getCambioEsperadoPBS().getLimiteInferior());
                    fNuevo.getCambioEsperadoPBS().setLimiteSuperior(elem.getCambioEsperadoPBS().getLimiteSuperior());
                    if(elem.getNombre().trim().equals(_elem.getNombre().trim())){
                        existe=true;
                        break;
                    }
                }
                if(!existe && !_elem.getNombre().trim().equals("")){
                    collection.add(fNuevo);
                }
            }
        }
    }
    
    public Double getLimiteInferior() {
        return limiteInferior;
    }
    
    public void setLimiteInferior(Double limiteInferior) {
        this.limiteInferior = limiteInferior;
        for (FactorRiesgoMatrizCorrelacionMetrica elem : collection) {
            elem.getCambioEsperadoPBS().setLimiteInferior(limiteInferior);
        }
    }
    
    public Double getLimiteSuperior() {
        return limiteSuperior;
    }
    
    public void setLimiteSuperior(Double limiteSuperior) {
        this.limiteSuperior = limiteSuperior;
        for (FactorRiesgoMatrizCorrelacionMetrica elem : collection) {
            elem.getCambioEsperadoPBS().setLimiteSuperior(limiteSuperior);
        }
    }
    
    public String toString() {
        return nombre+" "+this.numero;
    }
    
}
